package com.xmtlxx.wms.service;

import com.xmtlxx.common.core.domain.PageQuery;
import com.xmtlxx.common.core.page.TableDataInfo;
import com.xmtlxx.wms.domain.bo.CabinetBo;
import com.xmtlxx.wms.domain.vo.CabinetVo;

import java.util.Collection;
import java.util.List;

/**
 * 柜号Service接口
 *
 * @author xmtlxx
 * @date 2022-12-15
 */
public interface ICabinetService {

    /**
     * 查询柜号
     *
     * @param id 柜号主键
     * @return 柜号
     */
    CabinetVo queryById(String id);

    /**
     * 查询柜号列表
     *
     * @param bo 柜号
     * @return 柜号集合
     */
    TableDataInfo<CabinetVo> queryPageList(CabinetBo bo, PageQuery pageQuery);

    /**
     * 查询柜号列表
     *
     * @param bo 柜号
     * @return 柜号集合
     */
    List<CabinetVo> queryList(CabinetBo bo);

    /**
     * 修改柜号
     *
     * @param bo 柜号
     * @return 结果
     */
    Boolean insertByBo(CabinetBo bo);

    /**
     * 修改柜号
     *
     * @param bo 柜号
     * @return 结果
     */
    Boolean updateByBo(CabinetBo bo);

    /**
     * 校验并批量删除柜号信息
     *
     * @param ids 需要删除的柜号主键集合
     * @param isValid 是否校验,true-删除前校验,false-不校验
     * @return 结果
     */
    Boolean deleteWithValidByIds(Collection<String> ids, Boolean isValid);

    Boolean insertBatchByVo(CabinetVo vo);
}
